Extracting and Implementing List Homomorphisms in Parallel Program Development

نویسنده

  • Sergei Gorlatch
چکیده

Homomorphisms are functions that match the divide-and-conquer pattern and are widely used in parallel programming. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: nding a homo-morphic representation of a given function; (2) parallelism implementation: deriving an eecient parallel program that computes the function. The proposed approach to parallelism extraction starts by writing two sequential programs for the function, on traditional cons lists and on dual snoc lists; the parallel program is obtained by generalizing sequential programs as terms. For almost-homomorphic functions, e.g., the maximum segment sum problem, our method provides a systematic embedding into a homomorphism. The implementation problem is addressed by introducing the class of distributable homomorphisms and deriving for them a common parallel program schema. The derivation is based on equa-tional reasoning in the Bird-Meertens formalism, which guarantees the correctness of the parallel target program. The approach is illustrated with the function scan (parallel preex), for which the combination of our two systematic methods yields the optimal hypercube algorithm, usually presented ad hoc in the literature.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Formal Derivation of Parallel Program for 2-Dimensional Maximum Segment Sum Problem

It has been attracting much attention to make use of list homomorphisms in parallel programming because they ideally suit the divide-and-conquer parallel paradigm. However, they have been usually treated rather informally and ad-hoc in the development of e cient parallel programs. This paper reports a case study on systematic and formal development of a new parallel program for the 2-dimensiona...

متن کامل

List Homomorphism with Accumulation

This paper introduces accumulation into list homomorphisms for systematic development of both efficient and correct parallel programs. New parallelizable recursive pattern called H-homomorphism is given, and transformations from sequential patterns in the H-form and Hform into (H-)homomorphism are shown. We illustrate the power of our formalization by developing a novel and general parallel pro...

متن کامل

Systematic Extraction and Implementation of Divide-and-Conquer Parallelism

Homomorphisms are functions that match the divide-and-conquer paradigm and thus can be computed in parallel. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: nd-ing a homomorphic representation of a given function; (2) parallelism implementation: deriving an eecient parallel program that computes the function. A systematic approach to parallelism extraction proce...

متن کامل

Construction of List Homomorphisms by Tupling and Fusion

List homomorphisms are functions which can be e ciently computed in parallel since they ideally suit the divide-and-conquer paradigm. However, some interesting functions, e.g., the maximum segment sum problem, are not list homomorphisms. In this paper, we propose a systematic way of embedding them into list homomorphisms so that parallel programs are derived. We show, with an example, how a sim...

متن کامل

Parallel Programming, List Homomorphisms and the Maximum Segment Sum Problem

We review the use of the Bird-Meertens Formalism as a vehicle for the construction of programs with massive implicit parallelism. We show that a simple result from the theory, concerning the expression of list homomorph-isms, can help us in our search for parallel algorithms and demonstrate its application to some simple problems including the maximum segment sum problem. Our main purpose is to...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Sci. Comput. Program.

دوره 33  شماره 

صفحات  -

تاریخ انتشار 1999